package alkuperainen;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;


public class Kurssi implements java.io.Serializable {

	private String nimi;
	private int kurssinro;
	private int op;
	private int paiva;
	private GregorianCalendar alkupaiva;
	private GregorianCalendar loppupaiva;
	
	private ArrayList<Opiskelija> opiskelijat;
	private ArrayList<Tapahtuma> tapahtumat;
	
	public Kurssi (String nimi, int kurssinro, int op, int alkupaiva, int alkukuu, int alkuvuosi, int loppupaiva, int loppukuu, int loppuvuosi) {
		this.nimi = nimi;
		this.kurssinro = kurssinro;
		if (op > 0)
			this.op = op;
		else
			op = 0;
		
		if (paiva == Calendar.MONDAY || paiva == Calendar.TUESDAY || paiva == Calendar.WEDNESDAY || paiva == Calendar.THURSDAY || paiva == Calendar.FRIDAY || paiva == Calendar.SATURDAY || paiva == Calendar.SUNDAY)
			this.paiva = paiva;
		else
			this.paiva = Calendar.SUNDAY;
		
		this.alkupaiva = new GregorianCalendar(alkuvuosi, alkukuu -1, alkupaiva);
		this.loppupaiva = new GregorianCalendar(loppuvuosi, loppukuu -1, loppupaiva);
		
		opiskelijat = new ArrayList<Opiskelija>();
        tapahtumat = new ArrayList<Tapahtuma>();
	}
	
	public String getNimi () {
		return this.nimi;
	}
	
	public void setNimi (String nimi) {
		this.nimi = nimi;
	}
	
	public int getKurssinro () {
		return this.kurssinro;
	}
	
	public void setKurssinro (int kurssinro) {
		this.kurssinro = kurssinro;
	}
	
	public int getOp () {
		return this.op;
	}
	
	public void setOp (int op) {
		this.op = op;
	}
	
	public String getAlkupaiva(){
		return alkupaiva.get(Calendar.DAY_OF_MONTH) + "." + (alkupaiva.get(Calendar.MONTH) + 1) + "." + alkupaiva.get(Calendar.YEAR);
	}
	
	public String getLoppupaiva(){
		return loppupaiva.get(Calendar.DAY_OF_MONTH) + "." + (loppupaiva.get(Calendar.MONTH) + 1) + "." + loppupaiva.get(Calendar.YEAR);
	}
	
	public ArrayList<Opiskelija> getOpiskelijat(){
		return opiskelijat;
	}
	
	public ArrayList<Tapahtuma> getTapahtumat(){
		return tapahtumat;
	}
	
	public void lisaaTapahtuma(Tapahtuma t){
		if (!tapahtumat.contains(t))
			tapahtumat.add(t);
	}
	
	public void lisaaOpiskelija(Opiskelija o){
		if (!opiskelijat.contains(o)){
			opiskelijat.add(o);
			o.lisaaIlmoittautuminen(this);
		}
	}
}
